package fr.adfm.dto;

import java.io.Serializable;

public class ArticleVetementDto extends ArticleDto implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private TailleDto taille;
	private CouleurDto couleur;
	
	public ArticleVetementDto() {
	}
	
	public ArticleVetementDto(int quantiteStockInitiale, int quantiteStockDisponible,TailleDto taille, CouleurDto couleur) {
		this.taille = taille;
		this.couleur = couleur;
		this.quantiteStockDisponible = quantiteStockDisponible;
		this.quantiteStockInitiale = quantiteStockInitiale;
	}
	
	public ArticleVetementDto(Long id, TailleDto taille, CouleurDto couleur,
							     int quantiteStockInitiale, int quantiteStockDisponible) {
		this.id = id;
		this.taille = taille;
		this.couleur = couleur;
		this.quantiteStockDisponible = quantiteStockDisponible;
		this.quantiteStockInitiale = quantiteStockInitiale;
	}

	public TailleDto getTaille() {
		return taille;
	}
	public void setTaille(TailleDto taille) {
		this.taille = taille;
	}
	public CouleurDto getCouleur() {
		return couleur;
	}
	public void setCouleur(CouleurDto couleur) {
		this.couleur = couleur;
	}
	@Override
	public String toString() {
		return super.toString() + taille.toString() +  couleur.toString();
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + ((couleur == null) ? 0 : couleur.hashCode());
		result = prime * result + ((taille == null) ? 0 : taille.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		ArticleVetementDto other = (ArticleVetementDto) obj;
		if (couleur == null) {
			if (other.couleur != null)
				return false;
		} else if (!couleur.equals(other.couleur))
			return false;
		if (taille == null) {
			if (other.taille != null)
				return false;
		} else if (!taille.equals(other.taille))
			return false;
		return true;
	}
	

}
